import matplotlib.pyplot as plt
import cv2 as cv
import os
path='floder'
if not os.path.exists(path):
    os.mkdir(path)

i=0
for f in os.listdir():
    if ".jpg" not in f:  # 如果不是jpg图像文件，则略过
        continue
    img = cv.imread(f)  
    img_gray= cv.cvtColor(img, cv.COLOR_BGR2GRAY)
    img_gray = cv.equalizeHist(img_gray) #对图像进行直方图增强

    # 1. 创建级联分类器
    face_cascade = cv.CascadeClassifier()                   
    # 2. 引入训练好的可用于人脸识别的级联分类器模型
    face_cascade.load("haarcascade_frontalface_alt.xml")
    # 3. 用此级联分类器识别图像中的所有人脸信息，返回一个包含有所有识别的人联系系的列表
    # 列表中每一个元素包含四个值：面部左上角的坐标(x,y) 以及面部的宽和高(w,h)
    faces = face_cascade.detectMultiScale(img_gray)

    # 4. 为图像中的所有面部画框
        
    for (x,y,w,h) in faces:
        cv.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)
        cv.imwrite(path+"/"+f.split('.')[0]+"."+str(i)+".jpg", img[y:y+h, x:x+w])
    i += 1
    if i == 20:
        i=0
    
